<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        const  arr = [12,35,57,68,9,0,24]

        //累加
        const result = arr.reduce((prev,current)=>{
            return prev + current
        },0)

        console.log(result);

        //过滤 返回新数组
        const result1 = arr.reduce((prev,current)=>{
            // return current >= 30 ? prev.push(current) : ""
            current >= 30 ? prev.push(current) : ""
            return prev
        },[])

        console.log(result1);
        

        //把url字符串查询字符串转对象 http://XXX.com?user=laowang&pass=123
        const url =  "http://XXX.com?user=laowang&pass=123"
        
        // console.log(url.split("?")[1].split("&")[0].split("="))
       const queryObject = url.split("?")[1].split("&").reduce((prev,current)=>{
            const [key,value] = current.split("=")
            //需计算的成员访问
            // return prev[key] = value //返回等号右边的值,由于循环覆盖,返回123
            prev[key] = value//{user: 'laowang', pass: '123'}
            return prev
        },{})
        console.log(queryObject);

        //案例：逗号操作符 返回逗号右侧的值
        for(let i = 0,j = 0;i < 5,j < 10;i++,j++){
            console.log("i",i,"j",j);//1-9
        }
        for(let i = 0,j = 0;i < 10,j < 5;i++,j++){
            console.log("i",i,"j",j);//1-4
        }

        /*
        总结:
          -string.split():切割点,返回被切割的元素所组成的数组
                          切割点的数量为length-1
          -array.reduce():有三个参数 参数1是初始值,可以是数值,数组,对象等任何值
                                    参数2是当前遍历到的元素
                                    参数3引用调用此方法的数组
                -作用:累加累减,成员创建等等类似于拼接的场景
          -运算符的优先级:每个运算符都有返回值
              逗号和赋值操作符都是返回右侧的值
           
          -成员访问语法:
              .和[] []是需计算的成员访问,一般用于变量或者不规范的变量名

        */
    </script>
</body>
</html>